package cn.zch.soft.util.qrcode.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
public class OutPutTxt {
  public static void main(String[] args) {
    method1("ss", "E:\\dd.txt");
  }
  public static void method1(String path, String txt) {
    /*** rzc 判断txt文件路径中的文件夹是否存在，如果不存在则创建，存在跳过 *****************/
    String[] paths = path.split("\\//");
    for (int i = 1; i < paths.length; i++) {
      File files = new File(path.substring(0, path.indexOf(paths[i]) - 2));
      //如果文件夹不存在则创建
      if (!files.exists() && !files.isDirectory()) {
        files.mkdir();
      }
    }
    /**********************************************************************************/
    FileWriter fw = null;
    try {
      // 如果文件存在，则追加内容；如果文件不存在，则创建文件
      File f = new File(path);
      fw = new FileWriter(f, true);
    }
    catch (IOException e) {
      e.printStackTrace();
    }
    PrintWriter pw = new PrintWriter(fw);
    pw.println(txt);
    pw.flush();
    try {
      fw.flush();
      pw.close();
      fw.close();
    }
    catch (IOException e) {
      e.printStackTrace();
    }
  }
  public static void emptyFile(String path, String txt) throws IOException {
    //OutPutTxt.class.getResource("/").getPath();
    /*** rzc 判断txt文件路径中的文件夹是否存在，如果不存在则创建，存在跳过 *****************/
    String[] paths = path.split("\\//");
    for (int i = 1; i < paths.length; i++) {
      File files = new File(path.substring(0, path.indexOf(paths[i]) - 2));
      //如果文件夹不存在则创建
      if (!files.exists() && !files.isDirectory()) {
        files.mkdir();
      }
    }
    /**********************************************************************************/
    FileWriter fw = null;
    try {
      // 如果文件存在，则追加内容；如果文件不存在，则创建文件
      File f = new File(path);
      fw = new FileWriter(f);
    }
    catch (IOException e) {
      e.printStackTrace();
    }
    PrintWriter pw = new PrintWriter(fw);
    pw.println(txt);
    pw.flush();
    try {
      fw.flush();
      pw.close();
      fw.close();
    }
    catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
   * 追加文件：使用FileOutputStream，在构造FileOutputStream时，把第二个参数设为true
   *
   * @param path
   * @param conent
   */
  public static void outTxtFile(String path, String conent) {
    /*** rzc 判断txt文件路径中的文件夹是否存在，如果不存在则创建，存在跳过 *****************/
    String[] paths = path.split("\\//");
    for (int i = 1; i < paths.length; i++) {
      File files = new File(path.substring(0, path.indexOf(paths[i]) - 2));
      //如果文件夹不存在则创建
      if (!files.exists() && !files.isDirectory()) {
        files.mkdir();
      }
    }
    /**********************************************************************************/
    BufferedWriter out = null;
    try {
      out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path, true), StandardCharsets.UTF_8));
      out.write(conent);
      out.write("\n");
      out.flush();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    finally {
      try {
        out.close();
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}
